/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package GUI.Bibliotecario;

import GUI.Bibliotecario.AdminPerfil.FrameVerPerfil;
import MainBiblioSoft.BiblioSoft;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;

/**
 * Esta clase en java representa un icono en la bandeja del sistema
 * para el frame del bibliotecario.
 *
 * @author usuario
 * Archivo: TrayIconFrameBibliotecario.java
 * @version 1.0
 * Fecha: sáb may 15 19:44:27 COT 2010
 */


public class TrayIconFrameBibliotecario {

    //Atributos de clase
    private PopupMenu popupContextual;
    private MenuItem itemRestaurar;
    private MenuItem itemPerfil;
    private MenuItem itemAcercaDe;
    private MenuItem itemCerrar;
    private MenuItem itemSalir;
    private FrameBibliotecario frameBibliotecario;
    private SystemTray bandejaSistema;
    private TrayIcon iconoBandeja;

    public TrayIconFrameBibliotecario(FrameBibliotecario frameBibliotecario) {
        this.frameBibliotecario = frameBibliotecario;
    }

    public void eliminarIconoEnBandeja() {
        if(bandejaSistema != null)
        bandejaSistema.remove(iconoBandeja);
    }

    public void crearIconoEnBandeja() throws Exception {
        //verifica que el sistema soporte bandeja del sistema
        if(SystemTray.isSupported()){
            //se crea una instancia de la bandeja del sistema
            bandejaSistema = SystemTray.getSystemTray();
            //creamos el popupmenu
            popupContextual = new PopupMenu();
            //creamos los menus
            itemRestaurar = new MenuItem("Restaurar");
            itemPerfil = new MenuItem("Perfil");
            itemAcercaDe = new MenuItem("Acerca de");
            itemCerrar = new MenuItem("Cerrar Sesion");
            itemSalir = new MenuItem("Salir");
            //manejadores de eventos
            ActionListener eventoSalir = new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            };
            ActionListener eventoRestaurar = new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    frameBibliotecario.setVisible(true);
                }
            };
            ActionListener eventoPerfil = new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    FrameVerPerfil frameVerPerfil = new FrameVerPerfil();
                    frameVerPerfil.textFieldCedula.setText(BiblioSoft.bibliotecario.getCedula()+"");
                    frameVerPerfil.textFieldDireccion.setText(BiblioSoft.bibliotecario.getDireccion());
                    frameVerPerfil.textFieldPrimerApellido.setText(BiblioSoft.bibliotecario.getPrimerApellido());
                    frameVerPerfil.textFieldPrimerNombre.setText(BiblioSoft.bibliotecario.getPrimerNombre());
                    frameVerPerfil.textFieldSegundoApellido.setText(BiblioSoft.bibliotecario.getSegundoApellido());
                    frameVerPerfil.textFieldSegundoNombre.setText(BiblioSoft.bibliotecario.getSegundoNombre());
                    frameVerPerfil.textFieldTelefono.setText(BiblioSoft.bibliotecario.getTelefono());
                    frameVerPerfil.textFieldUniversidad.setText(BiblioSoft.bibliotecario.getUniversidad());
                }
            };
            ActionListener eventoCerrar = new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    frameBibliotecario.dispose();
                    bandejaSistema.remove(iconoBandeja);
                    BiblioSoft.main(null);
                }
            };
            //agrega el manejador de eventos a cada menu
            itemRestaurar.addActionListener(eventoRestaurar);
            itemPerfil.addActionListener(eventoPerfil);
            itemCerrar.addActionListener(eventoCerrar);
            itemSalir.addActionListener(eventoSalir);
            //agrega los menus al popupcontextual
            popupContextual.add(itemRestaurar);
            popupContextual.add(itemPerfil);
            popupContextual.add(itemAcercaDe);
            popupContextual.add(itemCerrar);
            popupContextual.addSeparator();
            popupContextual.add(itemSalir);
            //se crea una imagen para icono en bandeja
            ImageIcon imagen = new ImageIcon(getClass().getResource("/Imagenes/IconBiblioSoft1.png"));
            //se crea el icono de la bandeja
            iconoBandeja = new TrayIcon(imagen.getImage(), "BiblioSoft :: Bibliotecario", popupContextual);
            iconoBandeja.addActionListener(eventoRestaurar);
            //agrega el icono a la bandeja
            bandejaSistema.add(iconoBandeja);
        } else {
            throw new Exception("El sistema operativo no soporta el icono en bandeja del sistema");
        }
    }
}
